package com.cdu.guoxinan.www.smartcom.service;

import com.cdu.guoxinan.www.smartcom.domian.dto.*;
import com.cdu.guoxinan.www.smartcom.domian.pojo.User;
import com.cdu.guoxinan.www.smartcom.domian.vo.LoginVO;
import org.springframework.validation.annotation.Validated;

import com.cdu.guoxinan.www.smartcom.domian.dto.QueryUserDTO;
import com.cdu.guoxinan.www.smartcom.domian.dto.UpdataUserDTO;
import com.cdu.guoxinan.www.smartcom.unit.model.R;

public interface UserService {
    User login(@Validated LoginDTO loginDto);

    boolean register(registerDTO registerDTO);

    boolean resetPassword(ResetDTO resetDTO);
    boolean changePassword(ChangePasswordDTO dto);

    User queryByeMail(String email);

    boolean updata(UpdataUserDTO updataUserDTO);



    R query(QueryUserDTO queryUserDTO);

    boolean add(User user);

    LoginVO getLoginVO(User user);

    User queryByUsername(String username);

    UserProfileDTO getUserProfileById(Long userId);

    boolean changeProfile(UserProfileDTO updataUserDTO);

    Integer getUserId(String username);
}
